Computing technologies have transformed our world. However, in order to prove useful, computing relies on the ability to access information, whether that information is accessed over a network, or from a local storage device. In order to reduce the amount of network bandwidth needed to communicate information over a network, and in order to reduce the amount of storage space needed to store information, information is often compressed using one or more of a variety of compression technologies. Compression takes advantage of redundancy in the information to thereby reduce the size of the information.
In lossless compression, compression. serves to reduce the size of information with no loss of information. There is, however, a theoretical limit (often referred to as the “informational entropy”) to how far information may be compressed in lossless form depending on the level of redundancy. In lossy compression, however, compression may typically be performed to a smaller size, but with some loss in information.
Most typically, compression occurs at the transport or protocol level in the protocol stack when transmitting a message in compressed form. Using this mechanism, all the data in the message is compressed, including information needed to decide what action should be taken upon the rest of the data. The data is often wrapped to indicate that the data is in compressed form. In order to determine what action is required on the data, it is often required to decompress all of the data. Sometimes, after the extensive processing needed to decompress the data, it is discovered that no action is to be taken on the data. This is an inefficient use of limited processing resources.
For instance, suppose that a message is compressed and transmitted to a destination computing system via multiple intermediary computing systems. Each intermediary computing system might decompress the entire message, only to determine that the only thing that is required is to forward the data in compressed form to the next computing system. Thus, the intermediary performed extensive processing needed to decompress and recompress the message only to access the address of the next intermediary or destination.